List Organization Invites
GET /organizations/me/invites
Returns a paginated list of pending invites for the currently active organization.Authentication
Requires organization admin or owner privileges.Query Parameters
Number of invites to return per page
Number of invites to skip for pagination
Response
Returns a paginated response containing pending organization invites.Array of organization invite objects
Total number of pending invites
Number of items per page
Current pagination offset
Invite Object Fields
Unique identifier for the invite
ID of the organization
Email address of the invited user (normalized to lowercase)
Role that will be assigned:
owner, admin, or memberWhether invitee will have read access to all boards
Whether invitee will have write access to all boards
Unique token used to accept the invite (24 URL-safe characters)
ID of the user who created the invite
ID of the user who accepted the invite (null if pending)
ISO 8601 timestamp when invite was accepted (null if pending)
ISO 8601 timestamp when invite was created
ISO 8601 timestamp when invite was last updated
Example Request
Example Response
Notes
- Only returns invites that have not been accepted (
accepted_atis null) - Results are ordered by creation date (newest first)
Create Organization Invite
POST /organizations/me/invites
Create a new invitation to join the organization.Authentication
Requires organization admin or owner privileges.Request Body
Email address of the person to invite (will be normalized to lowercase)
Role to assign:
owner, admin, or memberGrant read access to all boards
Grant write access to all boards
Array of board-specific access permissions
Board Access Specification
ID of the board
Read permission for this specific board
Write permission for this specific board
Response
Returns the created invite object with a unique token.Example Request
Example Response
Error Responses
409 Conflict
User with this email is already a member of the organization
422 Unprocessable Content
- Email is empty or invalid
- One or more board IDs do not belong to the organization
Notes
- Email addresses are normalized to lowercase before checking for existing members
- A secure random token is automatically generated for the invite
- The token should be sent to the invitee (this endpoint does not send emails automatically)
- If the invited email already has a user account and is a member, the request fails with 409
Revoke Organization Invite
DELETE /organizations/me/invites/
Revoke a pending invitation.Authentication
Requires organization admin or owner privileges.Path Parameters
ID of the invite to revoke
Response
Returns the revoked invite object.Example Request
Error Responses
404 Not Found
Invite not found or does not belong to the organization
Notes
- Deletes the invite and all associated board access records
- Once revoked, the invite token can no longer be used
Accept Organization Invite
POST /organizations/invites/accept
Accept an organization invitation using a token. This endpoint is publicly accessible (not scoped to/me).
Authentication
Requires authentication. The authenticated user’s email must match the invited email.Request Body
The unique invite token received from the organization
Response
Returns the created or updated membership record.ID of the membership record
ID of the organization joined
ID of the user who accepted
Assigned role from the invite
Read access to all boards
Write access to all boards
When the membership was created
When the membership was last updated
Embedded user information
Array of board-specific access permissions
Example Request
Example Response
Error Responses
403 Forbidden
Authenticated user’s email does not match the invited email
404 Not Found
- Invalid token
- Invite has already been accepted
Notes
- Email matching is case-insensitive
- If the user is already a member, the invite permissions are merged with existing membership
- The invite is marked as accepted with
accepted_by_user_idandaccepted_atfields - Invites can only be accepted once
- The user must be authenticated, and their email must match the invite’s
invited_email